#ifndef CLIENTMENUSTATE_H_
#define CLIENTMENUSTATE_H_

#include "MenuState.h"
#include "Client.h"
#include "Color.h"

class Menu;
class Text;

class ClientMenuState : public MenuState
{
public:
    ClientMenuState(ClientPtr client);
    virtual ~ClientMenuState();

    virtual void init();

    GameState* handleClientDisconnectedEvent();
    GameState* handleServerGameStartEvent(unsigned int widthOfWell);
    GameState* addPlayerText(const std::string& playerName, const Color& color);
    GameState* clearPlayerTexts();

    GameState* performMenuActionEscape();
    GameState* performMenuAction1();

    GameState* handleEvent(const Event& event);

protected:
    virtual void addMenuLines();

private:
    bool isReady;
    ClientPtr client;
    std::vector<Text*> playerTexts;
};

#endif
